package com.liang.cloud.Controller;

import com.alibaba.fastjson.JSONObject;
import com.liang.cloud.Dto.CartDTO;
import com.liang.cloud.Entity.ProductInfo;
import com.liang.cloud.Service.ProductInfoService;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;

/**
 * @author: 余亮亮
 * @description: com.java.gmall.oms.api.OmsApi
 * @create: 2020-03-25 21:27:07
 **/
@RestController
@RequestMapping("/product/api")
public class ApiProductController {
    @Resource
    private ProductInfoService service;
    /**
     * 寻找某个商品（顾客）
     * @param productId
     * @return
     */
    @GetMapping("/findOne/{id}")
    public ProductInfo findOne(@PathVariable("id") String productId){
        return service.findOne(productId);
    }

    /**
     * 寻找所有上架商品（顾客）
     * @return
     */
    @GetMapping("/findUp")
    public List<ProductInfo> findUp(){
        return service.findUp();
    }

    /**
     * 寻找商品所有（商户用）
     * @return
     */
    @GetMapping("/findAll")
    public Page<ProductInfo> findAll(Pageable pageable){
        return service.findAll(pageable);
    }

    /**
     * 修改增
     * @return
     */
    @PostMapping("/save")
    public ProductInfo save(@RequestBody ProductInfo productInfo){
        return service.save(productInfo);
    }

    /**
     * 加库存
     */
    @PostMapping("/addStore")
    public void addStore(@RequestBody List<CartDTO> cartDTOList){
//        System.out.println("c:"+cartDtoList);
//        List<CartDTO> list = JSONObject.parseArray(cartDtoList,CartDTO.class);
        service.addStore(cartDTOList);
    }

    /**
     * 减库存
     */
    @PostMapping("/decreaseStore")
    public void decreaseStore(@RequestBody List<CartDTO> cartDTOList){
//        List<CartDTO> list = JSONObject.parseArray(cartDtoList,CartDTO.class);
        service.decreaseStore(cartDTOList);
    }

    /**
     * 上架
     * @param productId
     * @return
     */
    @PostMapping("/upSale")
    ProductInfo upSale( String productId){
        return service.upSale(productId);
    }

    /**
     * 下架
     * @param productId
     * @return
     */
    @PostMapping("/downSale")
    ProductInfo downSale(String productId){
        return service.downSale(productId);
    }
}
